package org.example.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.example.domain.dto.ErpMaterialDTO;
import org.example.domain.po.ErpMaterial;
import com.baomidou.mybatisplus.extension.service.IService;
import org.example.domain.po.ErpMaterialExtend;
import org.example.domain.po.ErpUnit;

import java.util.List;

/**
* @author 3400
* @description 针对表【erp_material(产品表)】的数据库操作Service
* @createDate 2024-10-30 16:28:35
*/
public interface ErpMaterialService extends IService<ErpMaterial> {
    Page<ErpMaterial> findByPage(Page<ErpMaterial> page,
                                 @Param("categoryId") String categoryId,
                                 @Param("color") String color,
                                 @Param("keyword") String keyword,
                                 @Param("position") String position,
                                 @Param("mfrs") String mfrs,
                                 @Param("weight") String weight,
                                 @Param("expiryNum") String expiryNum,
                                 @Param("remark") String remark,
                                 @Param("enabled") String enabled,
                                 @Param("tenantId") Long tenantId);


    // 获取最大条码
    Long getMaxBarCode();
    boolean addMaterial(ErpMaterial material);
    int checkIfUsed(Long id); // 声明检查是否被引用的方法
//    boolean deleteBatch(List<Long> ids); // 声明批量删除方法

    boolean deleteMaterial(@Param("id") Long id);

    boolean updateMaterial(ErpMaterial material);  // 添加更新方法

    Page<ErpMaterialDTO> selectAggregatedData(Page<ErpMaterialDTO> page,
                                              Long depotId,Long tenantId);

    List<ErpMaterialDTO> select( Long depotId, Long headerId,Long tenantId);

    List<ErpMaterialDTO> select2(Long depotId, Long materialId, Long tenantId);
}
